#ifndef __Player_H__
#define __Player_H__

#include <Ogre.h>
#include <NxOgre.h>

class Player
{
public:
	int	playerID;
	Ogre::String playerName;
	Ogre::Vector3 position;
	Ogre::Quaternion orientation;

	Ogre::Camera* playerCam;
	Ogre::SceneNode* playerSceneNode;
	Ogre::Entity* playerEntity;
	NxOgre::Body* playerBody;

	Player();
	~Player();

	void createPlayer();

	int getID(void) { return playerID; }
	Ogre::String getName(void) { return playerName; }
	Ogre::Vector3 getPosition(void) { return position; }
	Ogre::Quaternion getOrientation(void) { return orientation; }

	Ogre::Camera* getCamera(void) { return playerCam; }
	Ogre::SceneNode* getSceneNode(void) { return playerSceneNode; }
	Ogre::Entity* getEntity(void) { return playerEntity; }
	NxOgre::Body* getBody(void) { return playerBody; }
	NxOgre::Actor* getActor(void) { return static_cast<NxOgre::Actor*>(playerBody); }

	void updatePosition();
	void updateOrientation();

	Ogre::Real mMoveSpeed;
	Ogre::Degree mRotateSpeed;
	float mMoveScale;
	Ogre::Degree mRotScale;
	Ogre::Radian mRotX, mRotY;
	Ogre::Vector3 mTranslateVector;
	Ogre::Vector3 mTranslateVector2;
};

#endif